The present invention is directed to an arbitration controller for providing arbitration on a serial bus. More particularly, the present invention is directed to an arbitration controller for providing arbitration on a multipoint, high speed serial bus using drivers that include an enable pin.
Multipoint serial buses have recently been introduced for interconnecting various computer equipment and other electronic devices. These buses typically allow for much higher data speed than previously known serial buses. One such bus is the Universal Serial Bus (USB), details of which can be found in Universal Serial Bus Specification Revision 1.0, Jan. 15, 1996, Copyright 1996, Compaq Computer Corporation, Digital Equipment Corporation, IBM PC Company, Intel Corporation, Microsoft Corporation, NEC, Northern Telecom. The USB has a data transfer rate of up to 12 megabits per second (Mbps). Another recently introduced high speed serial bus is the 1394 serial bus. The 1394 serial bus complies with the Institute of Electrical and Electronic Engineers (IEEE) 1394 standard. The 1394 serial bus has a data transfer rate of up to 400 Mbps and a clock speed of about 50 Mhz.
One problem with these new high speed serial buses is that known ways to provide multipoint arbitration cannot be implemented because of the higher speeds. For example, FIG. 1 illustrates a known method to provide multipoint arbitration on a low speed serial bus. In FIG. 1, three nodes, or drivers, 12, 14, 16 arbitrate for the use of the serial bus 10, where a driver that inputs a "0" on bus 10 wins the arbitration. The output of drivers 12, 14, 16 is solely dependent on the input. The drivers 12, 14, 16 are implemented using transistor-transistor logic (TTL). One example of a TTL driver is the 74F07 driver chip. TTL logic drivers typically include open collector outputs which cause the driver output to provide a high-impedance when its input is "1", or high. A tristated output releases the driver from the bus. Therefore, in the example shown in FIG. 1, node 12 which has an input of "0" wins the arbitration because it drives the bus low. Nodes 14 and 16 have an input of "1" and therefore tristate the bus.
However, with the introduction of higher speed serial buses, open collector output drivers such as drivers 12, 14, 16 can no longer be used. Specifically, when the frequency of the serial bus exceeds approximately 10 Mhz, the capacitance on the bus and the backplane of the device incorporating the bus increases sufficiently so that open collector drivers can no longer drive signals a sufficient distance required for most devices. Therefore, specialized high speed drivers must be used. The typical specialized high speed driver does not utilize open-collector outputs and includes an output enable pin. Examples of these specialized drivers include low voltage differential signaling (LVDS), emitter coupled logic (ECL) and advanced CMOS technology (ABT).
FIG. 2 illustrates an example of a specialized driver. The driver 20 includes an input pin 22, an output pin 24, and a output enable pin 26. A high input on the output enable pin 26 causes output pin 24 to tristate. A low input on output enable pin 26 causes output pin 24 to output the state of input pin 22.
In order to use a plurality of drivers 20 for arbitration on a high speed serial bus, it is desirable for the output of each driver 20, like open collector drivers 12, 14, 16, to be solely dependent on the input of driver 20. One way to achieve this is to tie output enable pin 26 to the inverse of input pin 22. With this arrangement, driver 20 is logically identical to drivers 12, 14, 16. However, we have discovered that there are problems when using this arrangement with a high speed serial data bus. Specifically, with most specialized drivers such as driver 20, the delay from the time output enable pin 26 changes state to the time output pin 24 changes state is different than the delay from the time the data input on input pin 22 changes state to the time output pin 24 changes state. During this time difference there is an unstable output state on output pin 24 which can result in corrupted data on the bus.
Based on the foregoing, there is a need for an arbitration controller that provides arbitration on a multipoint, high speed serial bus using drivers that include an output enable pin, where the controller eliminates any unstable output state on the drivers.